home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1995 October / EnigmA AMIGA RUN 01 (1995)(G.R. Edizioni)(IT)[!][issue 1995-10][Aminet 7].iso / Aminet / dev / gcc / ixemul_src.lha / ixemul-41.0 / library / syscall.s < prev    next >
Text File  |  1995-05-17  |  2KB  |  50 lines

  1. /*
  2.  *  This file is part of ixemul.library for the Amiga.
  3.  *  Copyright (C) 1991, 1992  Markus M. Wild
  4.  *
  5.  *  This library is free software; you can redistribute it and/or
  6.  *  modify it under the terms of the GNU Library General Public
  7.  *  License as published by the Free Software Foundation; either
  8.  *  version 2 of the License, or (at your option) any later version.
  9.  *
  10.  *  This library is distributed in the hope that it will be useful,
  11.  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  13.  *  Library General Public License for more details.
  14.  *
  15.  *  You should have received a copy of the GNU Library General Public
  16.  *  License along with this library; if not, write to the Free
  17.  *  Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  18.  *
  19.  *  syscall.s,v 1.1.1.1 1994/04/04 04:29:57 amiga Exp
  20.  *
  21.  *  syscall.s,v
  22. | Revision 1.1.1.1  1994/04/04  04:29:57  amiga
  23. | Initial CVS check in.
  24. |
  25.  *  Revision 1.1  1992/05/14  20:36:14  mwild
  26.  *  Initial revision
  27.  *
  28.  */
  29.  
  30. | this is the library internal function!! 
  31. | there is a similar function in the statically linked part of the library, but
  32. | that one may not use our library base vector
  33.  
  34.     .globl    _syscall
  35.  
  36. _syscall:
  37.     movel    _ixemulbase,a0
  38.     movel    sp@(4),d0    | get vector number
  39.     addl    #4,d0        | add 4, since we start at offset -30 (first #=1)
  40.     addl    d0,d0
  41.     subl    d0,a0
  42.     addl    d0,d0
  43.     subl    d0,a0
  44.  
  45.     lea    sp@(8),sp    | advance to "real" arguments
  46.     jsr    a0@
  47.     lea    sp@(-8),sp    | and back, so rts will work ;-)
  48.  
  49.     rts
  50.